package com.fusetech.flow.audit.supportService;


import com.fusetech.common.core.domain.entity.SysRole;
import com.fusetech.common.core.domain.entity.SysUser;
import com.fusetech.flow.audit.model.Audit;
import com.fusetech.flow.audit.model.AuditResponse;
import com.fusetech.flow.audit.model.CheckResponse;

import java.util.List;

/**
 * iaudit chcek服务
 *
 * @author Liuwq
 * @Author：Liuwq-Fuse
 * @Package：com.zxhy.service.erp.audit.supportService
 * @Project：zhixing-heyue-erp-server
 * @name：IAuditChcekService
 * @Date：2023/5/24 17:50
 * @Filename：IAuditChcekService
 * @date 2023/06/05
 */
public interface IAuditChcekService {
    /**
     * 检查节点用户roleb
     *
     * @param list       列表
     * @param user       用户
     * @param documentId 文档id
     * @return boolean
     */
    public boolean checkNodeUserRoleB(List<SysRole> list, SysUser user, String documentId);

    /**
     * 检查节点用户角色
     *
     * @param list       列表
     * @param user       用户
     * @param documentId 文档id
     * @return {@link CheckResponse}
     */
    public CheckResponse checkNodeUserRole(List<SysRole> list, SysUser user, String documentId);//[框架对应转换]

    /**
     * 检查过程用户角色
     *
     * @param list         列表
     * @param documentType 文档类型
     * @return boolean
     */
    public boolean checkProcessUserRole(List<SysRole> list, String documentType);//[框架对应转换]

    /**
     * 检查用户角色反应过程
     *
     * @param list         列表
     * @param documentType 文档类型
     * @return {@link CheckResponse}
     */
    public CheckResponse checkProcessUserRoleResponse(List<SysRole> list, String documentType);//[框架对应转换]

    /**
     * 检查传入审核参数
     *
     * @param audit    审计
     * @param response 响应
     * @return {@link AuditResponse}
     */
    public AuditResponse checkAuditParam(Audit audit, AuditResponse response);
}
